package org.jiuling.basics.random;

import java.util.List;

/**
 * 随机值生成器
 * @author 紫灵
 * @date 2021年09月08日 22时16分56秒
 */
public class RandomValueCreater {

    /** 私有构造方法，禁止创建该对象 */
    private RandomValueCreater() {
    }

    /**
     * 通过最大数和最小数获取长整型随机数
     * @param min 最小数
     * @param max 最大数
     * @return 随机数
     */
    public static long randomLongByMaxAndMin(long min,long max){
        return (long) ((Math.random() * (max - min)) + min);
    }

    /**
     * 通过长度取整形随机数
     * @param length 随机数长度
     * @return 随机数
     */
    public static long  randomLongBylength(long length){
        int max = 1;
        for (int i =1;i<=length;i++){
            max = max * 10;
        }
        int min = max / 10;
        max -= 1;
        return randomLongByMaxAndMin(min,max);
    }

    /**
     * 随机list数据
     * @param list 列表
     * @return 数据
     */
    public static <T> T randomListData(List<T> list){
        long randomNum = randomLongByMaxAndMin(0,list.size());
        return list.get((int) randomNum);
    }
}
